package encore.portal.container;

import javax.portlet.PortletRequest;
import javax.portlet.PortletRequestDispatcher;
import javax.portlet.PortletResponse;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import javax.servlet.http.HttpSession;

import encore.portal.portlet.models.PortletApplicationDefinition;

public interface RequestDispatcherService {

	public PortletRequestDispatcher getRequestDispatcher(ServletContext servletContext,PortletApplicationDefinition applicationDefinition,String path);
	
	public PortletRequestDispatcher getNamedDispatcher(ServletContext servletContext,PortletApplicationDefinition applicationDefinition,String name);
	
	public HttpServletRequestWrapper getRequestWrapper(ServletContext servletContext,HttpServletRequest servletRequest,PortletRequest portletRequest,HttpSession session,boolean included,boolean named);
	
	public HttpServletResponseWrapper getResponseWrapper(ServletContext servletContext,HttpServletResponse servletResponse,PortletRequest portletRequest,PortletResponse portletResponse,boolean included);
	
}
